PROTEUS 8086微机仿真(一)

您所在的位置:网站首页 proteus 仿真软件 PROTEUS 8086微机仿真(一)

PROTEUS 8086微机仿真(一)

2023-08-26 05:53| 来源: 网络整理| 查看: 265

前言

本系列文章讲述如何在仿真软件PROTEUS中对8086微机进行仿真实验。文章中使用仿真软件PROTEUS 8.6版本,编译软件为emu8086,仿真的8086微机工作在最小模式下。需要读者掌握基本微机及电路知识,并了解8086汇编基本指令及编程逻辑。本节内容为创建8086微机工程,并设计8086最小系统电路。

一、创建工程

首先打开PROTEUS软件,并选择新建工程。跟随新建工程向导设置文件名称及存放位置。 在这里插入图片描述 在原理图创建中选择默认即可。 在这里插入图片描述 由于我们主要目的为8086微机仿真,不涉及PCB布线及制作等工作,此处不创建PCB布板设计。 在这里插入图片描述 在创建固件选择中选择8086系列中的8086控制器。在编译器选择上,我们采用汇编语言进行编程,故采用MASM32(proteus内部并未集成相应的编译器,后续会讲解如何通过emu8086编译并链接编译文件。) 在这里插入图片描述 创建完成后会在原理图纸上得到8086微机,后续操作都将围绕此微机展开。 在这里插入图片描述

二、基本控制信号介绍

由于我们的微机仿真工作在8086最小模式下,故此部分只介绍最小模式时各引脚定义。

标号类型定义AD0-AD15I/O地址与数据信号传输端口,采用分时复用。A16-A19O在最小模式下输出16~19位地址信号。 BHE ‾ \overline{\text{BHE}} BHEO高8位读取控制,低电平有效。(低8位为A0) RD ‾ \overline{\text{RD}} RDO读有效,当8086从外部读取数据时为低电平。 WR ‾ \overline{\text{WR}} WRO写有效,8086需要想外部写数据时转换为低电平INTRI中断请求信号,如需要触发中断则向此引脚发送高电平。 INTA ‾ \overline{\text{INTA}} INTAO中断应答,当INTR接收到中断请求并进行相应保护处理后,此引脚发出低电平以响应请求RESETI重置,当此引脚收到低电平,则停止当前操作,program counter返回初始位置。CLKI时钟信号,需外接晶振以提供微机时钟。(proteus的8086模型内置了时钟,故仿真时无需连接。)MN/ MX ‾ \overline{\text{MX}} MXI模式选择引脚,需保持此引脚高电平以运行在最小模式下。ALEO当8086的AD口输出地址信号时,此引脚变为高电平。 DEN ‾ \overline{\text{DEN}} DENO当8086的AD口传输数据信号时,此引脚变为低电平。DT/ R ‾ \overline{\text{R}} RO数据方向选择引脚,高电平时传输,低电平时接收。HOLD,HOLAI/O当其它芯片占用总线时通过此引脚与8086配合,一般用于DMA IO ‾ \overline{\text{IO}} IO/MO当8086访问内存时,此引脚为高电平,访问IO口时为低电平(此处与8088CPU正好相反)

根据上表信息,可将8086CPU连接成如下状态。 在这里插入图片描述

三、8086最小系统搭建

由于proteus中已将RAM与ROM集成在8086内部,故搭建最小系统时只需处理地址锁存与数据缓冲部分即可。

1.数据缓冲

在8086系统中,数据缓冲主要功能是当DEN为低电平(传输数据)时,根据DT/R状态选择将数据传输方向,起到数据缓冲的作用。根据此要求,我们选择74HC245芯片作为数据缓冲芯片。该芯片可控制一字节信号的传输方向,并且双向均为三态门,可完美满足任务要求。该芯片引脚与功能如下图所示。 在这里插入图片描述 采用两个芯片组成16位缓冲器连接在总线上,将信号“过滤”为只含数据信号的数据总线。 在这里插入图片描述

2.地址锁存

8086总线输出的信号为地址与数据分时复用的多种信号,为保证访问外设时地址改变,需将地址锁存在新的地址总线中。此处采用74HC573锁存芯片。该芯片可实现有效8位锁存,并有较强的驱动能力,可在驱动多芯片时不掉电压。其电路结构图如下所示: 在这里插入图片描述 本系统共采用3块74HC573芯片锁存20位地址信号至新的地址总线中,其电路连接如下(最小模式中16~19位地址并不复用,也可以不做锁存处理。): 在这里插入图片描述

3.译码电路

由于RAM与ROM均已内置,故只需对IO口所接外设芯片地址译码,此处采用138译码器,并保证IO/M口低电压时有效。 (只对A5~8译码即可覆盖绝大多数常用IO外设的微机标准地址,故此处仅设计一个138译码器,后续其余功能若出现不足可再酌情增加。) 在这里插入图片描述

4.完整电路图

为方便后续验证电路连接是否正确,可在电路后端加一块74HC573锁存器。(片选信号需同时兼顾芯片片选与写入信号) 在这里插入图片描述 完整系统电路图如下: 在这里插入图片描述

四、系统实测

由于此微机系统较为基础,故尝试向74HC573中简单输入特定数据以检验系统是否可以正常工作。 由图可知,此573锁存器对应的地址为00C0H,试向其写入数据55H程序如下:

STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS CODE SEGMENT PUBLIC 'CODE' ASSUME CS:CODE START: MOV DX, 00C0H MOV AL, 55H OUT DX, AL ENDLESS: JMP ENDLESS CODE ENDS END START

将上述程序在emu8086中编译并生成可执行文件后,双击仿真电路中8086芯片,在Program File选项中链接到生成的可执行文件上,即可运行仿真。 编译运行后得结果显示如下(红色为1,蓝色为0): 在这里插入图片描述 可见此系统正确输出了55H(01010101B)。

五、总结

本系统采用8086微机为控制器,74HC245为数据缓冲芯片,74HC573位地址锁存芯片,74HC138为地址译码器构建微机最小系统,并想=向00C0H地址处写入55H数据以检验系统正确性。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3